﻿#define _CRT_SECURE_NO_WARNINGS 1 

#include<stdio.h>
//int main()
//{
//	char a = 'w';
//	char* pa = &a;
//	printf("%c", *pa);
//
//
//	return 0;
//
//}


//int main()
//{
//	const char* pstr = "hello bit.";//这⾥是把⼀个字符串放到pstr指针变量⾥了吗？
//	printf("%s\n", pstr);
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	char str1[] = "hello bit.";
//	char str2[] = "hello bit.";
//	const char* str3 = "hello bit.";
//	const char* str4 = "hello bit.";
//	if (str1 == str2)
//		printf("str1 and str2 are same\n");
//	else
//		printf("str1 and str2 are not same\n");
//
//	if (str3 == str4)
//		printf("str3 and str4 are same\n");
//	else
//		printf("str3 and str4 are not same\n");
//
//	return 0;
//}

//void test1(int* p1)
//{
//	
//}
//
//void test2(int(*p2)[10])
//{
//
//}
//
//
//
//int main()
//{
//	int arr1[10] = { 0 };
//	int arr2[5][10] = { 0 };
//	test1(arr1);
//	test2(arr2);
//	return 0;
//}

//#include<stdio.h>
//void print(int(*p)[5], int r, int c)
//{
//	for (int i = 0; i < r; i++)
//	{
//		for (int j = 0; j < c; j++)
//		{
//			printf("%d ", *(*(p + i) + j));
//		}
//		printf("\n");
//	}
//}
//
//
//
//
//int main()
//{
//	int arr[3][5] = { {1,2,3,4,5},{3,4,5,6,7,},{5,6,7,8,9} };
//	print(arr, 3, 5);
//	return 0;
//}


//void print()
//{
//	printf("hehe");
//}
//
//int main()
//{
//	printf("%p ", &print);
//	return 0;
//}


//void print()
//{
//	printf("hehe");
//}
//
//int main()
//{
//	void (*p)() = print;
//	return 0;
//}


//int add(int x, int y)
//{
//	return x + y;
//}
//
//int main()
//{
//	int x, y;
//	scanf("%d %d", &x, &y);
//	int (*p)(int, int) = add;
//	int ret = p(x, y);
//	//int ret = add(x, y);
//	printf("%d ", ret);
//	return 0;
//}

//typedef unsigned int uint;
//
//int main()
//{
//	uint a = 0;
//	return 0;
//}


//函数数组指针


//int (*parr1[3])();
//int* parr2[3]();
//int (*)() parr3[3];
//
// 
//
// 
// 
//


//转移表add sub mul div

//void print()
//{
//	printf("************************\n");
//	printf("***1.add      2.sub*****\n");
//	printf("***3.mul      4.div*****\n");
//	printf("************************\n");
//
//}
//
//
//int add(int x, int y)
//{
//	return x + y;
//}
//
//int sub(int x, int y)
//{
//	return x - y;
//}
//
//int mul(int x, int y)
//{
//	return x * y;
//}
//
//int div(int x, int y)
//{
//	return x / y;
//}
//
//int main()
//{
//	int n = 0; 
//
//	
//	do
//	{
//		int x, y;
//		
//		print();
//		scanf("%d", &n);
//		int ret = 0;
//
//		switch (n)
//		{
//		case 1:
//
//			printf("输入\n");
//			scanf("%d %d", &x, &y);
//			ret = add(x, y);
//			printf("%d\n", ret);
//			break;
//
//		case 2:
//			printf("输入\n");
//			scanf("%d %d", &x, &y);
//			ret = sub(x, y);
//			printf("%d\n", ret);
//			break;
//		case 3:
//			printf("输入\n");
//			scanf("%d %d", &x, &y);
//			ret = mul(x, y);
//			printf("%d\n", ret);
//			break;
//		case 4:
//			printf("输入\n");
//			scanf("%d %d", &x, &y);
//			ret = div(x, y);
//			printf("%d\n", ret);
//		default:
//			printf("输入错误");
//			break;
//		}
//
//	} while (n);
//
//
//	
//	return 0;
//}

void print()
{
	printf("************************\n");
	printf("***1.add      2.sub*****\n");
	printf("***3.mul      4.div*****\n");
	printf("************************\n");

}


int add(int x, int y)
{
	return x + y;
}

int sub(int x, int y)
{
	return x - y;
}

int mul(int x, int y)
{
	return x * y;
}

int div(int x, int y)
{
	return x / y;
}

//int main()
//{
//	int n = 0;
//    do
//	{
//		int x, y;
//
//		print();
//		scanf("%d", &n);
//		switch(n)
//		{
//		case 1:
//		case 2:
//		case 3:
//		case 4:
//			printf("输入\n");
//			scanf("%d %d", &x, &y);
//			int ret = 0;
//			int(*p[4])(int, int) = { add,sub,mul,div };
//			ret = (p[n - 1])(x, y);
//			printf("%d\n", ret);
//			break;
//		default:
//			printf("输入错误\n");
//
//		}
//
//	} while (n);
//    return 0;
//}


void cal(int (*p)(int,int),int x,int y)
{
	int ret;
	ret = p(x, y);
	printf("%d\n", ret);
}


int main()
{
	int n = 0;
	do
	{
		int x, y;

		print();
		scanf("%d", &n);
		switch (n)
		{
		case 1:
			printf("输入\n");
			scanf("%d %d", &x, &y);
			cal(add, x, y);
			break;
		case 2:
			printf("输入\n");
			scanf("%d %d", &x, &y);
			cal(sub, x, y);
			break;
		case 3:
			printf("输入\n");
			scanf("%d %d", &x, &y);
			cal(mul, x, y);
			break;
		case 4:
			printf("输入\n");
			scanf("%d %d", &x, &y);
			cal(div, x, y);
			break;
		default:
			printf("输入错误\n");
			break;

		}

	} while (n);
	return 0;
}